ITP001 Axioms: ITP091^5.ax


%------------------------------------------------------------------------------
% File     : ITP091^5 : TPTP v8.2.0. Bugfixed v7.5.0.
% Domain   : Interactive Theorem Proving
% Axioms   : HOL4 set theory export, chainy mode
% Version  : [BG+19] axioms.
% English  :

% Refs     : [BG+19] Brown et al. (2019), GRUNGE: A Grand Unified ATP Chall
%          : [Gau20] Gauthier (2020), Email to Geoff Sutcliffe
% Source   : [BG+19]
% Names    : EncodeVar^2.ax [Gau20]
%          : HL4091^5.ax [TPAP]

% Status   : Satisfiable
% Syntax   : Number of formulae    :   17 (   0 unt;   2 typ;   0 def)
%            Number of atoms       :  401 (   2 equ;   0 cnn)
%            Maximal formula atoms :   50 (  23 avg)
%            Number of connectives :  591 (   0   ~;   0   |;   7   &; 550   @)
%                                         (   8 <=>;  26  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   20 (  14 avg; 550 nst)
%            Number of types       :    1 (   0 usr)
%            Number of type conns  :    2 (   2   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   40 (  39 usr;  37 con; 0-2 aty)
%            Number of variables   :   54 (   8   ^  44   !;   2   ?;  54   :)
% SPC      : TH0_SAT_EQU_NAR

% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
thf(tp_c_2EEncodeVar_2Efixed__width,type,
    c_2EEncodeVar_2Efixed__width: del > $i ).

thf(mem_c_2EEncodeVar_2Efixed__width,axiom,
    ! [A_27a: del] : ( mem @ ( c_2EEncodeVar_2Efixed__width @ A_27a ) @ ( arr @ ty_2Enum_2Enum @ ( arr @ ( ty_2Epair_2Eprod @ ( arr @ A_27a @ bool ) @ ( ty_2Epair_2Eprod @ ( arr @ A_27a @ ( ty_2Elist_2Elist @ bool ) ) @ ( arr @ ( ty_2Elist_2Elist @ bool ) @ ( ty_2Eoption_2Eoption @ ( ty_2Epair_2Eprod @ A_27a @ ( ty_2Elist_2Elist @ bool ) ) ) ) ) ) @ bool ) ) ) ).

thf(tp_c_2EEncodeVar_2Eof__length,type,
    c_2EEncodeVar_2Eof__length: del > $i ).

thf(mem_c_2EEncodeVar_2Eof__length,axiom,
    ! [A_27a: del] : ( mem @ ( c_2EEncodeVar_2Eof__length @ A_27a ) @ ( arr @ ty_2Enum_2Enum @ ( arr @ ( ty_2Elist_2Elist @ A_27a ) @ bool ) ) ) ).

thf(ax_thm_2EEncodeVar_2Efixed__width__def,axiom,
    ! [A_27a: del,V0n: tp__ty_2Enum_2Enum,V1c: $i] :
      ( ( mem @ V1c @ ( ty_2Epair_2Eprod @ ( arr @ A_27a @ bool ) @ ( ty_2Epair_2Eprod @ ( arr @ A_27a @ ( ty_2Elist_2Elist @ bool ) ) @ ( arr @ ( ty_2Elist_2Elist @ bool ) @ ( ty_2Eoption_2Eoption @ ( ty_2Epair_2Eprod @ A_27a @ ( ty_2Elist_2Elist @ bool ) ) ) ) ) ) )
     => ( ( p @ ( ap @ ( ap @ ( c_2EEncodeVar_2Efixed__width @ A_27a ) @ ( inj__ty_2Enum_2Enum @ V0n ) ) @ V1c ) )
      <=> ! [V2x: $i] :
            ( ( mem @ V2x @ A_27a )
           => ( ( p @ ( ap @ ( ap @ ( c_2ECoder_2Edomain @ A_27a ) @ V1c ) @ V2x ) )
             => ( ( surj__ty_2Enum_2Enum @ ( ap @ ( c_2Elist_2ELENGTH @ bool ) @ ( ap @ ( ap @ ( c_2ECoder_2Eencoder @ A_27a ) @ V1c ) @ V2x ) ) )
                = V0n ) ) ) ) ) ).

thf(ax_thm_2EEncodeVar_2Eof__length__def,axiom,
    ! [A_27a: del,V0l: $i] :
      ( ( mem @ V0l @ ( ty_2Elist_2Elist @ A_27a ) )
     => ! [V1n: tp__ty_2Enum_2Enum] :
          ( ( p @ ( ap @ ( ap @ ( c_2Ebool_2EIN @ ( ty_2Elist_2Elist @ A_27a ) ) @ V0l ) @ ( ap @ ( c_2EEncodeVar_2Eof__length @ A_27a ) @ ( inj__ty_2Enum_2Enum @ V1n ) ) ) )
        <=> ( ( surj__ty_2Enum_2Enum @ ( ap @ ( c_2Elist_2ELENGTH @ A_27a ) @ V0l ) )
            = V1n ) ) ) ).

thf(conj_thm_2EEncodeVar_2Efixed__width__univ,axiom,
    ! [A_27a: del,V0phi: $i] :
      ( ( mem @ V0phi @ ( arr @ A_27a @ bool ) )
     => ! [V1c: $i] :
          ( ( mem @ V1c @ ( ty_2Epair_2Eprod @ ( arr @ A_27a @ bool ) @ ( ty_2Epair_2Eprod @ ( arr @ A_27a @ ( ty_2Elist_2Elist @ bool ) ) @ ( arr @ ( ty_2Elist_2Elist @ bool ) @ ( ty_2Eoption_2Eoption @ ( ty_2Epair_2Eprod @ A_27a @ ( ty_2Elist_2Elist @ bool ) ) ) ) ) ) )
         => ! [V2n: tp__ty_2Enum_2Enum] :
              ( ( ( p @ ( ap @ ( c_2ECoder_2Ewf__coder @ A_27a ) @ V1c ) )
                & ( p @ ( ap @ ( ap @ ( c_2EEncodeVar_2Efixed__width @ A_27a ) @ ( inj__ty_2Enum_2Enum @ V2n ) ) @ V1c ) ) )
             => ( ! [V3x: $i] :
                    ( ( mem @ V3x @ A_27a )
                   => ( ( p @ ( ap @ ( ap @ ( c_2ECoder_2Edomain @ A_27a ) @ V1c ) @ V3x ) )
                     => ( p @ ( ap @ V0phi @ V3x ) ) ) )
              <=> ( p
                  @ ( ap @ ( ap @ ( c_2Ebool_2ERES__FORALL @ ( ty_2Elist_2Elist @ bool ) ) @ ( ap @ ( c_2EEncodeVar_2Eof__length @ bool ) @ ( inj__ty_2Enum_2Enum @ V2n ) ) )
                    @ ( lam @ ( ty_2Elist_2Elist @ bool )
                      @ ^ [V4w: $i] : ( ap @ V0phi @ ( ap @ ( ap @ ( c_2ECoder_2Edecoder @ A_27a ) @ V1c ) @ V4w ) ) ) ) ) ) ) ) ) ).

thf(conj_thm_2EEncodeVar_2Eof__length__univ__suc,axiom,
    ! [A_27a: del,V0phi: $i] :
      ( ( mem @ V0phi @ ( arr @ ( ty_2Elist_2Elist @ A_27a ) @ bool ) )
     => ! [V1n: tp__ty_2Enum_2Enum] :
          ( ( p
            @ ( ap @ ( ap @ ( c_2Ebool_2ERES__FORALL @ ( ty_2Elist_2Elist @ A_27a ) ) @ ( ap @ ( c_2EEncodeVar_2Eof__length @ A_27a ) @ ( ap @ c_2Enum_2ESUC @ ( inj__ty_2Enum_2Enum @ V1n ) ) ) )
              @ ( lam @ ( ty_2Elist_2Elist @ A_27a )
                @ ^ [V2w: $i] : ( ap @ V0phi @ V2w ) ) ) )
        <=> ! [V3x: $i] :
              ( ( mem @ V3x @ A_27a )
             => ( p
                @ ( ap @ ( ap @ ( c_2Ebool_2ERES__FORALL @ ( ty_2Elist_2Elist @ A_27a ) ) @ ( ap @ ( c_2EEncodeVar_2Eof__length @ A_27a ) @ ( inj__ty_2Enum_2Enum @ V1n ) ) )
                  @ ( lam @ ( ty_2Elist_2Elist @ A_27a )
                    @ ^ [V4w: $i] : ( ap @ V0phi @ ( ap @ ( ap @ ( c_2Elist_2ECONS @ A_27a ) @ V3x ) @ V4w ) ) ) ) ) ) ) ) ).

thf(conj_thm_2EEncodeVar_2Eof__length__univ__zero,axiom,
    ! [A_27a: del,V0phi: $i] :
      ( ( mem @ V0phi @ ( arr @ ( ty_2Elist_2Elist @ A_27a ) @ bool ) )
     => ( ( p
          @ ( ap @ ( ap @ ( c_2Ebool_2ERES__FORALL @ ( ty_2Elist_2Elist @ A_27a ) ) @ ( ap @ ( c_2EEncodeVar_2Eof__length @ A_27a ) @ ( inj__ty_2Enum_2Enum @ fo__c_2Enum_2E0 ) ) )
            @ ( lam @ ( ty_2Elist_2Elist @ A_27a )
              @ ^ [V1w: $i] : ( ap @ V0phi @ V1w ) ) ) )
      <=> ( p @ ( ap @ V0phi @ ( c_2Elist_2ENIL @ A_27a ) ) ) ) ) ).

thf(conj_thm_2EEncodeVar_2Efixed__width__exists,axiom,
    ! [A_27a: del,V0phi: $i] :
      ( ( mem @ V0phi @ ( arr @ A_27a @ bool ) )
     => ! [V1c: $i] :
          ( ( mem @ V1c @ ( ty_2Epair_2Eprod @ ( arr @ A_27a @ bool ) @ ( ty_2Epair_2Eprod @ ( arr @ A_27a @ ( ty_2Elist_2Elist @ bool ) ) @ ( arr @ ( ty_2Elist_2Elist @ bool ) @ ( ty_2Eoption_2Eoption @ ( ty_2Epair_2Eprod @ A_27a @ ( ty_2Elist_2Elist @ bool ) ) ) ) ) ) )
         => ! [V2n: tp__ty_2Enum_2Enum] :
              ( ( ( p @ ( ap @ ( c_2ECoder_2Ewf__coder @ A_27a ) @ V1c ) )
                & ( p @ ( ap @ ( ap @ ( c_2EEncodeVar_2Efixed__width @ A_27a ) @ ( inj__ty_2Enum_2Enum @ V2n ) ) @ V1c ) ) )
             => ( ? [V3x: $i] :
                    ( ( mem @ V3x @ A_27a )
                    & ( p @ ( ap @ ( ap @ ( c_2ECoder_2Edomain @ A_27a ) @ V1c ) @ V3x ) )
                    & ( p @ ( ap @ V0phi @ V3x ) ) )
              <=> ( p
                  @ ( ap @ ( ap @ ( c_2Ebool_2ERES__EXISTS @ ( ty_2Elist_2Elist @ bool ) ) @ ( ap @ ( c_2EEncodeVar_2Eof__length @ bool ) @ ( inj__ty_2Enum_2Enum @ V2n ) ) )
                    @ ( lam @ ( ty_2Elist_2Elist @ bool )
                      @ ^ [V4w: $i] : ( ap @ V0phi @ ( ap @ ( ap @ ( c_2ECoder_2Edecoder @ A_27a ) @ V1c ) @ V4w ) ) ) ) ) ) ) ) ) ).

thf(conj_thm_2EEncodeVar_2Eof__length__exists__suc,axiom,
    ! [A_27a: del,V0phi: $i] :
      ( ( mem @ V0phi @ ( arr @ ( ty_2Elist_2Elist @ A_27a ) @ bool ) )
     => ! [V1n: tp__ty_2Enum_2Enum] :
          ( ( p
            @ ( ap @ ( ap @ ( c_2Ebool_2ERES__EXISTS @ ( ty_2Elist_2Elist @ A_27a ) ) @ ( ap @ ( c_2EEncodeVar_2Eof__length @ A_27a ) @ ( ap @ c_2Enum_2ESUC @ ( inj__ty_2Enum_2Enum @ V1n ) ) ) )
              @ ( lam @ ( ty_2Elist_2Elist @ A_27a )
                @ ^ [V2w: $i] : ( ap @ V0phi @ V2w ) ) ) )
        <=> ? [V3x: $i] :
              ( ( mem @ V3x @ A_27a )
              & ( p
                @ ( ap @ ( ap @ ( c_2Ebool_2ERES__EXISTS @ ( ty_2Elist_2Elist @ A_27a ) ) @ ( ap @ ( c_2EEncodeVar_2Eof__length @ A_27a ) @ ( inj__ty_2Enum_2Enum @ V1n ) ) )
                  @ ( lam @ ( ty_2Elist_2Elist @ A_27a )
                    @ ^ [V4w: $i] : ( ap @ V0phi @ ( ap @ ( ap @ ( c_2Elist_2ECONS @ A_27a ) @ V3x ) @ V4w ) ) ) ) ) ) ) ) ).

thf(conj_thm_2EEncodeVar_2Eof__length__exists__zero,axiom,
    ! [A_27a: del,V0phi: $i] :
      ( ( mem @ V0phi @ ( arr @ ( ty_2Elist_2Elist @ A_27a ) @ bool ) )
     => ( ( p
          @ ( ap @ ( ap @ ( c_2Ebool_2ERES__EXISTS @ ( ty_2Elist_2Elist @ A_27a ) ) @ ( ap @ ( c_2EEncodeVar_2Eof__length @ A_27a ) @ ( inj__ty_2Enum_2Enum @ fo__c_2Enum_2E0 ) ) )
            @ ( lam @ ( ty_2Elist_2Elist @ A_27a )
              @ ^ [V1w: $i] : ( ap @ V0phi @ V1w ) ) ) )
      <=> ( p @ ( ap @ V0phi @ ( c_2Elist_2ENIL @ A_27a ) ) ) ) ) ).

thf(conj_thm_2EEncodeVar_2Efixed__width__unit,axiom,
    ! [V0p: $i] :
      ( ( mem @ V0p @ ( arr @ ty_2Eone_2Eone @ bool ) )
     => ( p @ ( ap @ ( ap @ ( c_2EEncodeVar_2Efixed__width @ ty_2Eone_2Eone ) @ ( inj__ty_2Enum_2Enum @ fo__c_2Enum_2E0 ) ) @ ( ap @ c_2ECoder_2Eunit__coder @ V0p ) ) ) ) ).

thf(conj_thm_2EEncodeVar_2Efixed__width__bool,axiom,
    ! [V0p: $i] :
      ( ( mem @ V0p @ ( arr @ bool @ bool ) )
     => ( p @ ( ap @ ( ap @ ( c_2EEncodeVar_2Efixed__width @ bool ) @ ( ap @ c_2Earithmetic_2ENUMERAL @ ( ap @ c_2Earithmetic_2EBIT1 @ ( inj__ty_2Enum_2Enum @ fo__c_2Earithmetic_2EZERO ) ) ) ) @ ( ap @ c_2ECoder_2Ebool__coder @ V0p ) ) ) ) ).

thf(conj_thm_2EEncodeVar_2Efixed__width__prod,axiom,
    ! [A_27a: del,A_27b: del,V0c1: $i] :
      ( ( mem @ V0c1 @ ( ty_2Epair_2Eprod @ ( arr @ A_27a @ bool ) @ ( ty_2Epair_2Eprod @ ( arr @ A_27a @ ( ty_2Elist_2Elist @ bool ) ) @ ( arr @ ( ty_2Elist_2Elist @ bool ) @ ( ty_2Eoption_2Eoption @ ( ty_2Epair_2Eprod @ A_27a @ ( ty_2Elist_2Elist @ bool ) ) ) ) ) ) )
     => ! [V1c2: $i] :
          ( ( mem @ V1c2 @ ( ty_2Epair_2Eprod @ ( arr @ A_27b @ bool ) @ ( ty_2Epair_2Eprod @ ( arr @ A_27b @ ( ty_2Elist_2Elist @ bool ) ) @ ( arr @ ( ty_2Elist_2Elist @ bool ) @ ( ty_2Eoption_2Eoption @ ( ty_2Epair_2Eprod @ A_27b @ ( ty_2Elist_2Elist @ bool ) ) ) ) ) ) )
         => ! [V2n1: tp__ty_2Enum_2Enum,V3n2: tp__ty_2Enum_2Enum] :
              ( ( ( p @ ( ap @ ( ap @ ( c_2EEncodeVar_2Efixed__width @ A_27a ) @ ( inj__ty_2Enum_2Enum @ V2n1 ) ) @ V0c1 ) )
                & ( p @ ( ap @ ( ap @ ( c_2EEncodeVar_2Efixed__width @ A_27b ) @ ( inj__ty_2Enum_2Enum @ V3n2 ) ) @ V1c2 ) ) )
             => ( p @ ( ap @ ( ap @ ( c_2EEncodeVar_2Efixed__width @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ ( ap @ ( ap @ c_2Earithmetic_2E_2B @ ( inj__ty_2Enum_2Enum @ V2n1 ) ) @ ( inj__ty_2Enum_2Enum @ V3n2 ) ) ) @ ( ap @ ( ap @ ( c_2ECoder_2Eprod__coder @ A_27a @ A_27b @ A_27a @ A_27b ) @ V0c1 ) @ V1c2 ) ) ) ) ) ) ).

thf(conj_thm_2EEncodeVar_2Efixed__width__sum,axiom,
    ! [A_27a: del,A_27b: del,V0c1: $i] :
      ( ( mem @ V0c1 @ ( ty_2Epair_2Eprod @ ( arr @ A_27a @ bool ) @ ( ty_2Epair_2Eprod @ ( arr @ A_27a @ ( ty_2Elist_2Elist @ bool ) ) @ ( arr @ ( ty_2Elist_2Elist @ bool ) @ ( ty_2Eoption_2Eoption @ ( ty_2Epair_2Eprod @ A_27a @ ( ty_2Elist_2Elist @ bool ) ) ) ) ) ) )
     => ! [V1c2: $i] :
          ( ( mem @ V1c2 @ ( ty_2Epair_2Eprod @ ( arr @ A_27b @ bool ) @ ( ty_2Epair_2Eprod @ ( arr @ A_27b @ ( ty_2Elist_2Elist @ bool ) ) @ ( arr @ ( ty_2Elist_2Elist @ bool ) @ ( ty_2Eoption_2Eoption @ ( ty_2Epair_2Eprod @ A_27b @ ( ty_2Elist_2Elist @ bool ) ) ) ) ) ) )
         => ! [V2n: tp__ty_2Enum_2Enum] :
              ( ( ( p @ ( ap @ ( ap @ ( c_2EEncodeVar_2Efixed__width @ A_27a ) @ ( inj__ty_2Enum_2Enum @ V2n ) ) @ V0c1 ) )
                & ( p @ ( ap @ ( ap @ ( c_2EEncodeVar_2Efixed__width @ A_27b ) @ ( inj__ty_2Enum_2Enum @ V2n ) ) @ V1c2 ) ) )
             => ( p @ ( ap @ ( ap @ ( c_2EEncodeVar_2Efixed__width @ ( ty_2Esum_2Esum @ A_27a @ A_27b ) ) @ ( ap @ c_2Enum_2ESUC @ ( inj__ty_2Enum_2Enum @ V2n ) ) ) @ ( ap @ ( ap @ ( c_2ECoder_2Esum__coder @ A_27a @ A_27b @ A_27a @ A_27b ) @ V0c1 ) @ V1c2 ) ) ) ) ) ) ).

thf(conj_thm_2EEncodeVar_2Efixed__width__bnum,axiom,
    ! [V0m: tp__ty_2Enum_2Enum,V1p: $i] :
      ( ( mem @ V1p @ ( arr @ ty_2Enum_2Enum @ bool ) )
     => ( p @ ( ap @ ( ap @ ( c_2EEncodeVar_2Efixed__width @ ty_2Enum_2Enum ) @ ( inj__ty_2Enum_2Enum @ V0m ) ) @ ( ap @ ( ap @ c_2ECoder_2Ebnum__coder @ ( inj__ty_2Enum_2Enum @ V0m ) ) @ V1p ) ) ) ) ).

%------------------------------------------------------------------------------